#!/bin/bash
################### 自动化安装git脚本 #####################
# 执行之前：
# 	1. 去除特殊字符：sed -i 's/\r//' install_git.sh
# 	2. 添加执行权限：chmod +x install_git.sh
# 执行命令：./install_git.sh
# 执行之后：默认git用户名密码为：git/Awe@214（可以自行修改）。git仓库url：git@127.0.0.1:/srv/gitrepo/test1.git
# 脚本说明：
########################################################

echo "----------0.准备环境----------------"
echo "准备环境OK"

echo "----------1.安装git----------------"
cd /opt/soft
# yum安装git
yum -y install git
# 打印git版本号
git version
echo "install git success!"

echo "----------2.创建git账号和密码----------------"
# 创建git用户组和用户
groupadd git
adduser git -g git
# 设置git用户密码
passwd git
# 输入git用户密码，例如：Awe@214
echo "create git user success!"

echo "----------3.创建ssh证书----------------"
mkdir /home/git/.ssh
chmod 700 /home/git/.ssh
touch 700 /home/git/.ssh/authorized_keys
chmod 600 /home/git/.ssh/authorized_keys
# 修改git目录owner
chown -R git:git /home/git/.ssh/
echo "create git ssh certificate success!"

echo "----------4.创建私钥----------------"
mkdir /root/.ssh/
cd /root/.ssh/
ssh-keygen -m PEM -t rsa -b 4096 -C 'guweiqiang2012@163.com'
# 一路直接回车即可
# 将公钥拷贝到git的.ssh目录下
cat id_rsa.pub >> /home/git/.ssh/authorized_keys
# 重启sshd服务
systemctl restart sshd
echo "create git ssh keys success!"

echo "----------5.初始化一个git仓库----------------"
cd /srv
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
echo "请输入要创建的仓库名称，如：test"
read name
# 创建一个空的Git仓库
git init --bare ${name}.git
# 将仓库所属用户改为git
chown -R git:git ${name}.git
echo "init git repository: ${name} success!"